#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
调试服务器启动器
专门用于IDE调试，支持断点调试
"""

import sys
import os
import logging
from pathlib import Path

# 添加项目根目录到Python路径
project_root = Path(__file__).parent
sys.path.insert(0, str(project_root))

def setup_debug_environment():
    """设置调试环境"""
    # 设置环境变量
    os.environ['PYTHONPATH'] = str(project_root)
    os.environ['DEBUG_MODE'] = '1'
    
    # 配置日志
    logging.basicConfig(
        level=logging.INFO,
        format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
    )
    
    logger = logging.getLogger(__name__)
    logger.info("🐛 调试环境已设置")
    logger.info(f"📁 项目根目录: {project_root}")
    logger.info("🔍 可以在IDE中设置断点进行调试")
    
    return logger

def main():
    """主函数 - 启动调试服务器"""
    logger = setup_debug_environment()
    
    try:
        # 导入FastAPI应用
        from web_app import app
        
        # 使用uvicorn直接运行，适合调试
        import uvicorn
        
        # 调试模式配置
        config = uvicorn.Config(
            app=app,
            host="127.0.0.1",
            port=8000,
            log_level="info",
            reload=False,  # 调试时禁用自动重载
            access_log=True,
            use_colors=True
        )
        
        server = uvicorn.Server(config)
        
        logger.info("🚀 启动调试服务器...")
        logger.info("📍 访问地址: http://127.0.0.1:8000")
        logger.info("🔧 调试模式已启用")
        logger.info("⏹️  按 Ctrl+C 停止服务器")
        logger.info("")
        logger.info("💡 调试提示:")
        logger.info("   1. 在IDE中设置断点")
        logger.info("   2. 使用IDE的调试功能运行此文件")
        logger.info("   3. 访问 http://127.0.0.1:8000 触发断点")
        logger.info("")
        
        # 运行服务器
        server.run()
        
    except KeyboardInterrupt:
        logger.info("🛑 调试服务器已停止")
    except Exception as e:
        logger.error(f"❌ 调试服务器启动失败: {e}")
        sys.exit(1)

if __name__ == "__main__":
    main()
